1. Field
The present invention pertains to distributing and maintaining network presence information. More particularly, the present invention pertains to a server assisted peer-to-peer network communication method for determining when a person, device or service is present on a network.
2. Background Information
A network may be defined as a group of connected computers that allows people to share information and equipment. For example, a client/server network may consist of one or more client computers connected to a central computer known as a server. People (also referred to herein as xe2x80x9cpeers,xe2x80x9d xe2x80x9cnetwork users,xe2x80x9d or xe2x80x9cInternet usersxe2x80x9d) may access files stored on the server by using one of the client computers to send a message to the server. In addition to allowing network users to access files stored on central computers, current network technology (such as the Internet) permits an exchange of information between people who are simultaneously present on the network. A person (peer)/device/service is said to be present on a network such as the Internet when he/she/it is currently connected to (or logged on to) the network via a device such as a client computer, a personal computer (PC) or WEB TV. Among other available methods of Internet communication, one peer who is present on the Internet can use his/her PC and attached keyboard to type a message and send the typewritten message to another peer who is simultaneously present on the Internet. In turn, the recipient can transmit a typewritten response to the sender in almost as little time as it takes the recipient to read the incoming message and type the response. To establish Internet communication, as described above, it is desirable for the sender to know when an intended recipient is present on the Internet at the same time the sender is present on the Internet. However, because Internet presence is dynamic in nature, the list of particular peers who are present on the Internet during any one period in time can vary from one second to the next second. Moreover, many Internet service providers assign Internet Provider (IP) addresses dynamically. Hence, it is likely that a peer is assigned a different IP address each time he/she logs onto the Internet. In addition to the Internet communication method described above, dynamic presence information is also useful to other Internet applications such as Internet phones, workgroup applications, games and services such as Internet fax.
Currently, dynamic Internet presence information is employed in xe2x80x9cDynamic Address Booksxe2x80x9d, xe2x80x9cFriends and Family Listsxe2x80x9d, xe2x80x9cActive Address Booksxe2x80x9d, and xe2x80x9cBuddy Lists(trademark)xe2x80x9d. These applications rely on either Microsoft""s Internet Locator Server (ILS) or a proprietary client server protocol (e.g., America On-Line(trademark) (AOL(trademark)) or Mirabilis). They store Internet presence information on one or more servers. When using most of these systems, each user can maintain a list of peers whose network or Internet presence are of interest to the user. The AOL(trademark) system designates this list as a xe2x80x9cBuddy List(trademark)xe2x80x9d. Users become aware that a certain peer of interest has joined or left the Internet (or the network) when either the sever periodically pushes presence information to each interested user via the user""s client computer (as in the AOL(trademark) system) or the user uses a client computer to periodically poll the server to receive the presence information. Due to the dynamic nature of Internet presence for most home users, frequent pushes from the server to the client computer or polls from the client computer to the server are employed so that newly connecting users receive updated presence information in a timely manner. These frequent client interactions (the number of which increase in proportion to the number of xe2x80x9cbuddiesxe2x80x9d each logged-on user includes on their individual lists) place a heavy burden on server applications fulfilling these requests and the sub-networks that host them.
Statistical analysis helps illustrate the burden placed on servers using the above described methods. For the following 4 examples, assume: 1) all users are implementing a polling system, 2) each user polls the server every 90 seconds to check for the presence of another user, 3) 10% of all registered users are logged on-line at one time, 4) an average user on-line session lasts 120 minutes, and 5) a keep alive period (defined as the rate at which the polled server updates its presence information) lasts 20 minutes. Example 1: with 10,000 registered users each including 5 buddies on their list, the polling system employs 5,066 server hits per minute (a server hit is defined as an interaction with the server). Example 2: with 10,000 registered users each including 15 buddies on their lists, the polling system employs 15,066 server hits per minute. Example 3: with 1,000,000 registered users each including 5 buddies on their lists, the polling system employs 506,666 server hits per minute. Example 4: with 1,000,000 registered users each with 15 buddies on their lists, the polling system employs 1,506,666 server hits per minute. As these examples illustrate, the burden on the polled server increases significantly with either an increase in the number of buddies each user includes on their list or an increase in the total number of registered users.
The AOL(trademark) system implements a server-push system rather than the client-poll system described in the previous paragraph. In AOL""s(trademark) server-push system, users establish a connection with the server when they log on using their client computers. Through this connection, users are informed by the server when peers log on/off the Internet. The fact that each client is required to maintain a permanent connection with the server and that the server is responsible for updating all clients connected to the server also places a significant limit on the number of clients a server can handle.
Accordingly, there is a need for a method which will improve the scalability of current dynamic network presence distribution software.
According to an embodiment of the present invention, a method for distributing and maintaining network presence information is provided. A user (using, for example, a client computer) first transmits, to a server, a first message including the user""s network presence information and a request for peer network presence information. The user next receives, from the server, a second message including the requested peer network presence information. The user then verifies peer network presence using the received peer network presence information.